<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>NVTX C++ API Reference: nvtx3.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">NVTX C++ API Reference<span id="projectnumber">&#160;1.0</span>
   </div>
   <div id="projectbrief">C++ convenience wrappers for NVTX v3 C API</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_48b95086e7eb28d79ef283b47c5fa0c6.html">nvtx3</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">nvtx3.hpp File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Provides C++ constructs making the NVTX library safer and easier to use with zero overhead.  
<a href="#details">More...</a></p>
<div class="textblock"><div class="dynheader">
Include dependency graph for nvtx3.hpp:</div>
<div class="dyncontent">
<div class="center"><img src="nvtx3_8hpp__incl.png" border="0" usemap="#anvtx3_8hpp" alt=""/></div>
<map name="anvtx3_8hpp" id="anvtx3_8hpp">
<area shape="rect" title="Provides C++ constructs making the NVTX library safer and easier to use with zero overhead." alt="" coords="270,5,357,31"/>
<area shape="rect" title=" " alt="" coords="5,79,109,104"/>
<area shape="poly" title=" " alt="" coords="273,33,112,78,111,72,271,28"/>
<area shape="rect" title=" " alt="" coords="133,79,211,104"/>
<area shape="poly" title=" " alt="" coords="292,33,208,75,206,70,289,28"/>
<area shape="rect" title=" " alt="" coords="235,79,293,104"/>
<area shape="poly" title=" " alt="" coords="307,33,282,69,278,66,303,29"/>
<area shape="rect" title=" " alt="" coords="318,79,410,104"/>
<area shape="poly" title=" " alt="" coords="324,29,350,66,346,69,320,33"/>
<area shape="rect" title=" " alt="" coords="434,79,494,104"/>
<area shape="poly" title=" " alt="" coords="339,28,428,70,426,75,336,33"/>
<area shape="rect" title=" " alt="" coords="518,79,589,104"/>
<area shape="poly" title=" " alt="" coords="353,28,505,73,504,78,351,33"/>
</map>
</div>
</div>
<p><a href="nvtx3_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1domain.html">nvtx3::v1::domain</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><code>domain</code>s allow for grouping NVTX events into a single scope to differentiate them from events in other <code>domain</code>s.  <a href="classnvtx3_1_1v1_1_1domain.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx3_1_1v1_1_1domain_1_1global.html">nvtx3::v1::domain::global</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tag type for the "global" NVTX domain.  <a href="structnvtx3_1_1v1_1_1domain_1_1global.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::v1::rgb</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the values of the red, green, and blue color channels for an RGB color to use as an event attribute (assumes no transparency).  <a href="structnvtx3_1_1v1_1_1rgb.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx3_1_1v1_1_1argb.html">nvtx3::v1::argb</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates the value of the alpha, red, green, and blue color channels for an ARGB color to use as an event attribute.  <a href="structnvtx3_1_1v1_1_1argb.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1color.html">nvtx3::v1::color</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a custom color that can be associated with an NVTX event via its <code><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html" title="Describes the attributes of a NVTX event.">event_attributes</a></code>.  <a href="classnvtx3_1_1v1_1_1color.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1category.html">nvtx3::v1::category</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Object for intra-domain grouping of NVTX events.  <a href="classnvtx3_1_1v1_1_1category.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1named__category__in.html">nvtx3::v1::named_category_in&lt; D &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A <code>category</code> with an associated name string.  <a href="classnvtx3_1_1v1_1_1named__category__in.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1registered__string__in.html">nvtx3::v1::registered_string_in&lt; D &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A message registered with NVTX.  <a href="classnvtx3_1_1v1_1_1registered__string__in.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1message.html">nvtx3::v1::message</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows associating a message string with an NVTX event via its <code>EventAttribute</code>s.  <a href="classnvtx3_1_1v1_1_1message.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1payload.html">nvtx3::v1::payload</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A numerical value that can be associated with an NVTX event via its <code><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html" title="Describes the attributes of a NVTX event.">event_attributes</a></code>.  <a href="classnvtx3_1_1v1_1_1payload.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::v1::event_attributes</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes the attributes of a NVTX event.  <a href="classnvtx3_1_1v1_1_1event__attributes.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1scoped__range__in.html">nvtx3::v1::scoped_range_in&lt; D &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A RAII object for creating a NVTX range local to a thread within a domain.  <a href="classnvtx3_1_1v1_1_1scoped__range__in.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::v1::range_handle</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle used for correlating explicit range start and end events.  <a href="structnvtx3_1_1v1_1_1range__handle.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html">nvtx3::v1::unique_range_in&lt; D &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A RAII object for creating a NVTX range within a domain that can be created and destroyed on different threads.  <a href="classnvtx3_1_1v1_1_1unique__range__in.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7656fbfb8b9f1c9338ee9b024d534fa0" id="r_a7656fbfb8b9f1c9338ee9b024d534fa0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a7656fbfb8b9f1c9338ee9b024d534fa0">NVTX3_CPP_VERSION_MAJOR</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a7656fbfb8b9f1c9338ee9b024d534fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39293d970f89e6d118704a409b424061" id="r_a39293d970f89e6d118704a409b424061"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a39293d970f89e6d118704a409b424061">NVTX3_CPP_VERSION_MINOR</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a39293d970f89e6d118704a409b424061"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2581568dc38af4a4628fee30376c3238" id="r_a2581568dc38af4a4628fee30376c3238"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a2581568dc38af4a4628fee30376c3238">NVTX3_INLINE_THIS_VERSION</a></td></tr>
<tr class="separator:a2581568dc38af4a4628fee30376c3238"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2d95bad5f74d08ca6660da2a92a4463" id="r_ac2d95bad5f74d08ca6660da2a92a4463"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#ac2d95bad5f74d08ca6660da2a92a4463">NVTX3_CPP_INLINED_VERSION_MAJOR</a>&#160;&#160;&#160;1</td></tr>
<tr class="memdesc:ac2d95bad5f74d08ca6660da2a92a4463"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semantic major version number for NVTX C++ wrappers of unversioned symbols.  <br /></td></tr>
<tr class="separator:ac2d95bad5f74d08ca6660da2a92a4463"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb380e5bd6d9e68f116ad5fd2758f861" id="r_abb380e5bd6d9e68f116ad5fd2758f861"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#abb380e5bd6d9e68f116ad5fd2758f861">NVTX3_CPP_INLINED_VERSION_MINOR</a>&#160;&#160;&#160;0</td></tr>
<tr class="memdesc:abb380e5bd6d9e68f116ad5fd2758f861"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semantic minor version number for NVTX C++ wrappers of unversioned symbols.  <br /></td></tr>
<tr class="separator:abb380e5bd6d9e68f116ad5fd2758f861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c1a4996e4eb9624f7195770f586fe3e" id="r_a2c1a4996e4eb9624f7195770f586fe3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a2c1a4996e4eb9624f7195770f586fe3e">NVTX3_USE_CHECKED_OVERLOADS_FOR_GET</a>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a2c1a4996e4eb9624f7195770f586fe3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c7f7877d7493c59faf7da8b2660dbce" id="r_a7c7f7877d7493c59faf7da8b2660dbce"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a7c7f7877d7493c59faf7da8b2660dbce">NVTX3_USE_CHECKED_OVERLOADS_FOR_GET_DEFINED_HERE</a></td></tr>
<tr class="separator:a7c7f7877d7493c59faf7da8b2660dbce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d072179a819d4d854194a08d3b0f0e6" id="r_a9d072179a819d4d854194a08d3b0f0e6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a9d072179a819d4d854194a08d3b0f0e6">NVTX3_CONCAT</a>(A,  B)&#160;&#160;&#160;A##B</td></tr>
<tr class="separator:a9d072179a819d4d854194a08d3b0f0e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a567378abaa41fe2479ce0d240dd61689" id="r_a567378abaa41fe2479ce0d240dd61689"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a567378abaa41fe2479ce0d240dd61689">NVTX3_NAMESPACE_FOR</a>(VERSION)&#160;&#160;&#160;NVTX3_CONCAT(v, VERSION)</td></tr>
<tr class="separator:a567378abaa41fe2479ce0d240dd61689"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac51765404340471148a3c65e1e330af5" id="r_ac51765404340471148a3c65e1e330af5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#ac51765404340471148a3c65e1e330af5">NVTX3_VERSION_NAMESPACE</a>&#160;&#160;&#160;NVTX3_NAMESPACE_FOR(NVTX3_CPP_VERSION_MAJOR)</td></tr>
<tr class="separator:ac51765404340471148a3c65e1e330af5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afdad32bf119e1fa9c0ec05abc9cf671d" id="r_afdad32bf119e1fa9c0ec05abc9cf671d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#afdad32bf119e1fa9c0ec05abc9cf671d">NVTX3_INLINE_IF_REQUESTED</a>&#160;&#160;&#160;inline</td></tr>
<tr class="separator:afdad32bf119e1fa9c0ec05abc9cf671d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5658e1ecd630e1d1645da91eb626f78d" id="r_a5658e1ecd630e1d1645da91eb626f78d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a5658e1ecd630e1d1645da91eb626f78d">NVTX3_CONSTEXPR_IF_CPP14</a></td></tr>
<tr class="separator:a5658e1ecd630e1d1645da91eb626f78d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeed0a618f017e128a5d8654754f792db" id="r_aeed0a618f017e128a5d8654754f792db"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aeed0a618f017e128a5d8654754f792db">__has_cpp_attribute</a>(x)&#160;&#160;&#160;0</td></tr>
<tr class="separator:aeed0a618f017e128a5d8654754f792db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95b659b5b26a058c15af4fbaab2da636" id="r_a95b659b5b26a058c15af4fbaab2da636"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a95b659b5b26a058c15af4fbaab2da636">NVTX3_MAYBE_UNUSED</a></td></tr>
<tr class="separator:a95b659b5b26a058c15af4fbaab2da636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6571af9e4e4256a94557cabbd8224cb" id="r_ae6571af9e4e4256a94557cabbd8224cb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#ae6571af9e4e4256a94557cabbd8224cb">NVTX3_NO_DISCARD</a></td></tr>
<tr class="separator:ae6571af9e4e4256a94557cabbd8224cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8076bcd673627fb1c0dd3d1952a65d96" id="r_a8076bcd673627fb1c0dd3d1952a65d96"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a8076bcd673627fb1c0dd3d1952a65d96">NVTX3_STATIC_ASSERT</a>(condition,  message)&#160;&#160;&#160;static_assert(condition, message)</td></tr>
<tr class="separator:a8076bcd673627fb1c0dd3d1952a65d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51ff8b826c9a3fe3337eecd12e5ab861" id="r_a51ff8b826c9a3fe3337eecd12e5ab861"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a51ff8b826c9a3fe3337eecd12e5ab861">NVTX3_STATIC_ASSERT_DEFINED_HERE</a></td></tr>
<tr class="separator:a51ff8b826c9a3fe3337eecd12e5ab861"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a966f53fda906a701480667f518f2aec4" id="r_a966f53fda906a701480667f518f2aec4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a966f53fda906a701480667f518f2aec4">NVTX3_CPP_DEFINITIONS_V1_0</a></td></tr>
<tr class="separator:a966f53fda906a701480667f518f2aec4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58b4c0fa6be7f4754f8e73bcbf6fd1af" id="r_a58b4c0fa6be7f4754f8e73bcbf6fd1af"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af">NVTX3_V1_FUNC_RANGE_IN</a>(D)</td></tr>
<tr class="memdesc:a58b4c0fa6be7f4754f8e73bcbf6fd1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro for generating a range in the specified <code>domain</code> from the lifetime of a function.  <br /></td></tr>
<tr class="separator:a58b4c0fa6be7f4754f8e73bcbf6fd1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6fecf49b25b2364e548f9786136fb95" id="r_af6fecf49b25b2364e548f9786136fb95"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95">NVTX3_V1_FUNC_RANGE_IF_IN</a>(D,  C)</td></tr>
<tr class="memdesc:af6fecf49b25b2364e548f9786136fb95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro for generating a range in the specified <code>domain</code> from the lifetime of a function if the given boolean expression evaluates to true.  <br /></td></tr>
<tr class="separator:af6fecf49b25b2364e548f9786136fb95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f0dbc21588c8d0f6ee728fdf5289490" id="r_a9f0dbc21588c8d0f6ee728fdf5289490"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a9f0dbc21588c8d0f6ee728fdf5289490">NVTX3_V1_FUNC_RANGE</a>()&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af">NVTX3_V1_FUNC_RANGE_IN</a>(<a class="el" href="structnvtx3_1_1v1_1_1domain_1_1global.html">::nvtx3::v1::domain::global</a>)</td></tr>
<tr class="memdesc:a9f0dbc21588c8d0f6ee728fdf5289490"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro for generating a range in the global domain from the lifetime of a function.  <br /></td></tr>
<tr class="separator:a9f0dbc21588c8d0f6ee728fdf5289490"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f4e78b0ede77382c2c09fa007c5963e" id="r_a7f4e78b0ede77382c2c09fa007c5963e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a7f4e78b0ede77382c2c09fa007c5963e">NVTX3_V1_FUNC_RANGE_IF</a>(C)&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95">NVTX3_V1_FUNC_RANGE_IF_IN</a>(<a class="el" href="structnvtx3_1_1v1_1_1domain_1_1global.html">::nvtx3::v1::domain::global</a>, C)</td></tr>
<tr class="memdesc:a7f4e78b0ede77382c2c09fa007c5963e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience macro for generating a range in the global domain from the lifetime of a function if the given boolean expression evaluates to true.  <br /></td></tr>
<tr class="separator:a7f4e78b0ede77382c2c09fa007c5963e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b33923c0aaddafd0cf373d17a49f37e" id="r_a2b33923c0aaddafd0cf373d17a49f37e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a2b33923c0aaddafd0cf373d17a49f37e">NVTX3_FUNC_RANGE</a>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a9f0dbc21588c8d0f6ee728fdf5289490">NVTX3_V1_FUNC_RANGE</a></td></tr>
<tr class="separator:a2b33923c0aaddafd0cf373d17a49f37e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1681dde1cc9b1147f7d5ec4fe4991181" id="r_a1681dde1cc9b1147f7d5ec4fe4991181"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a1681dde1cc9b1147f7d5ec4fe4991181">NVTX3_FUNC_RANGE_IF</a>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a7f4e78b0ede77382c2c09fa007c5963e">NVTX3_V1_FUNC_RANGE_IF</a></td></tr>
<tr class="separator:a1681dde1cc9b1147f7d5ec4fe4991181"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33fb3ef40c0184ef994a401a0f925002" id="r_a33fb3ef40c0184ef994a401a0f925002"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a33fb3ef40c0184ef994a401a0f925002">NVTX3_FUNC_RANGE_IN</a>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af">NVTX3_V1_FUNC_RANGE_IN</a></td></tr>
<tr class="separator:a33fb3ef40c0184ef994a401a0f925002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaca3764edd58fa16fde7c737484515d" id="r_adaca3764edd58fa16fde7c737484515d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#adaca3764edd58fa16fde7c737484515d">NVTX3_FUNC_RANGE_IF_IN</a>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95">NVTX3_V1_FUNC_RANGE_IF_IN</a></td></tr>
<tr class="separator:adaca3764edd58fa16fde7c737484515d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aa1ceb1a4e9fe17b31069aaf6dbaf0071" id="r_aa1ceb1a4e9fe17b31069aaf6dbaf0071"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
<tr class="memitem:aa1ceb1a4e9fe17b31069aaf6dbaf0071"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aa1ceb1a4e9fe17b31069aaf6dbaf0071">nvtx3::v1::detail::is_uint32</a> = std::is_same&lt; typename std::decay&lt; T &gt;::type, uint32_t &gt;</td></tr>
<tr class="separator:aa1ceb1a4e9fe17b31069aaf6dbaf0071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ffa040266b85b6fb131dcb9ade33a0a" id="r_a5ffa040266b85b6fb131dcb9ade33a0a"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a5ffa040266b85b6fb131dcb9ade33a0a">nvtx3::named_category</a> = <a class="el" href="classnvtx3_1_1v1_1_1named__category__in.html">named_category_in</a>&lt; domain::global &gt;</td></tr>
<tr class="memdesc:a5ffa040266b85b6fb131dcb9ade33a0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for a <code><a class="el" href="classnvtx3_1_1v1_1_1named__category__in.html" title="A category with an associated name string.">named_category_in</a></code> in the global NVTX domain.  <br /></td></tr>
<tr class="separator:a5ffa040266b85b6fb131dcb9ade33a0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a952cb27f352570421161c01763effe63" id="r_a952cb27f352570421161c01763effe63"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a952cb27f352570421161c01763effe63">nvtx3::registered_string</a> = <a class="el" href="classnvtx3_1_1v1_1_1registered__string__in.html">registered_string_in</a>&lt; domain::global &gt;</td></tr>
<tr class="memdesc:a952cb27f352570421161c01763effe63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for a <code><a class="el" href="classnvtx3_1_1v1_1_1registered__string__in.html" title="A message registered with NVTX.">registered_string_in</a></code> in the global NVTX domain.  <br /></td></tr>
<tr class="separator:a952cb27f352570421161c01763effe63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e124f3d438e512b586415f1ac2b9677" id="r_a8e124f3d438e512b586415f1ac2b9677"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a8e124f3d438e512b586415f1ac2b9677">nvtx3::scoped_range</a> = <a class="el" href="classnvtx3_1_1v1_1_1scoped__range__in.html">scoped_range_in</a>&lt; domain::global &gt;</td></tr>
<tr class="memdesc:a8e124f3d438e512b586415f1ac2b9677"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for a <code><a class="el" href="classnvtx3_1_1v1_1_1scoped__range__in.html" title="A RAII object for creating a NVTX range local to a thread within a domain.">scoped_range_in</a></code> in the global NVTX domain.  <br /></td></tr>
<tr class="separator:a8e124f3d438e512b586415f1ac2b9677"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d623348b01d05981c7ea644fd7976c" id="r_a14d623348b01d05981c7ea644fd7976c"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a14d623348b01d05981c7ea644fd7976c">nvtx3::unique_range</a> = <a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html">unique_range_in</a>&lt; domain::global &gt;</td></tr>
<tr class="memdesc:a14d623348b01d05981c7ea644fd7976c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alias for a <code><a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html" title="A RAII object for creating a NVTX range within a domain that can be created and destroyed on differen...">unique_range_in</a></code> in the global NVTX domain.  <br /></td></tr>
<tr class="separator:a14d623348b01d05981c7ea644fd7976c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2035d9aeb0dd80cb41c64352783171b9" id="r_a2035d9aeb0dd80cb41c64352783171b9"><td class="memItemLeft" align="right" valign="top">template&lt;&gt; </td></tr>
<tr class="memitem:a2035d9aeb0dd80cb41c64352783171b9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classnvtx3_1_1v1_1_1domain.html">domain</a> const &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a2035d9aeb0dd80cb41c64352783171b9">nvtx3::domain::get&lt; domain::global &gt;</a> () noexcept</td></tr>
<tr class="memdesc:a2035d9aeb0dd80cb41c64352783171b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns reference to the <code>domain</code> object that represents the global NVTX domain.  <br /></td></tr>
<tr class="separator:a2035d9aeb0dd80cb41c64352783171b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa2016d0df543887a838402751356433d" id="r_aa2016d0df543887a838402751356433d"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aa2016d0df543887a838402751356433d">nvtx3::operator==</a> (<a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> lhs, <a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> rhs) noexcept</td></tr>
<tr class="memdesc:aa2016d0df543887a838402751356433d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two range_handles for equality.  <br /></td></tr>
<tr class="separator:aa2016d0df543887a838402751356433d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaae235fe6980a2ac95eb4f35d6e9ad1" id="r_aaaae235fe6980a2ac95eb4f35d6e9ad1"><td class="memItemLeft" align="right" valign="top">constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aaaae235fe6980a2ac95eb4f35d6e9ad1">nvtx3::operator!=</a> (<a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> lhs, <a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> rhs) noexcept</td></tr>
<tr class="memdesc:aaaae235fe6980a2ac95eb4f35d6e9ad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compares two range_handles for inequality.  <br /></td></tr>
<tr class="separator:aaaae235fe6980a2ac95eb4f35d6e9ad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58d393b13ffc2fe5f44b0171be0bec23" id="r_a58d393b13ffc2fe5f44b0171be0bec23"><td class="memTemplParams" colspan="2">template&lt;typename D  = domain::global&gt; </td></tr>
<tr class="memitem:a58d393b13ffc2fe5f44b0171be0bec23"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a58d393b13ffc2fe5f44b0171be0bec23">nvtx3::start_range_in</a> (<a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;attr) noexcept</td></tr>
<tr class="memdesc:a58d393b13ffc2fe5f44b0171be0bec23"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually begin an NVTX range.  <br /></td></tr>
<tr class="separator:a58d393b13ffc2fe5f44b0171be0bec23"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a277b16a1aadc6e8b40e720847b5fb124" id="r_a277b16a1aadc6e8b40e720847b5fb124"><td class="memTemplParams" colspan="2">template&lt;typename D  = domain::global, typename... Args&gt; </td></tr>
<tr class="memitem:a277b16a1aadc6e8b40e720847b5fb124"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a277b16a1aadc6e8b40e720847b5fb124">nvtx3::start_range_in</a> (Args const &amp;... args) noexcept</td></tr>
<tr class="memdesc:a277b16a1aadc6e8b40e720847b5fb124"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually begin an NVTX range.  <br /></td></tr>
<tr class="separator:a277b16a1aadc6e8b40e720847b5fb124"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a944d0beb92c70e5d3842c5dc4fca81ec" id="r_a944d0beb92c70e5d3842c5dc4fca81ec"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a944d0beb92c70e5d3842c5dc4fca81ec">nvtx3::start_range</a> (<a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;attr) noexcept</td></tr>
<tr class="memdesc:a944d0beb92c70e5d3842c5dc4fca81ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually begin an NVTX range in the global domain.  <br /></td></tr>
<tr class="separator:a944d0beb92c70e5d3842c5dc4fca81ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7484c890617a91bbbb998b793b59584e" id="r_a7484c890617a91bbbb998b793b59584e"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a7484c890617a91bbbb998b793b59584e"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a7484c890617a91bbbb998b793b59584e">nvtx3::start_range</a> (Args const &amp;... args) noexcept</td></tr>
<tr class="memdesc:a7484c890617a91bbbb998b793b59584e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually begin an NVTX range in the global domain.  <br /></td></tr>
<tr class="separator:a7484c890617a91bbbb998b793b59584e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ef24a4252e5cc6267766410a03dcebb" id="r_a0ef24a4252e5cc6267766410a03dcebb"><td class="memTemplParams" colspan="2">template&lt;typename D  = domain::global&gt; </td></tr>
<tr class="memitem:a0ef24a4252e5cc6267766410a03dcebb"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a0ef24a4252e5cc6267766410a03dcebb">nvtx3::end_range_in</a> (<a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> r) noexcept</td></tr>
<tr class="memdesc:a0ef24a4252e5cc6267766410a03dcebb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually end the range associated with the handle <code>r</code> in domain <code>D</code>.  <br /></td></tr>
<tr class="separator:a0ef24a4252e5cc6267766410a03dcebb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec1adbeb9e44752027d2ede89f1f0dba" id="r_aec1adbeb9e44752027d2ede89f1f0dba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aec1adbeb9e44752027d2ede89f1f0dba">nvtx3::end_range</a> (<a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a> r) noexcept</td></tr>
<tr class="memdesc:aec1adbeb9e44752027d2ede89f1f0dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manually end the range associated with the handle <code>r</code> in the global domain.  <br /></td></tr>
<tr class="separator:aec1adbeb9e44752027d2ede89f1f0dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ff87d74e1ba3b674b6e0a542d7a228" id="r_a19ff87d74e1ba3b674b6e0a542d7a228"><td class="memTemplParams" colspan="2">template&lt;typename D  = domain::global&gt; </td></tr>
<tr class="memitem:a19ff87d74e1ba3b674b6e0a542d7a228"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a19ff87d74e1ba3b674b6e0a542d7a228">nvtx3::mark_in</a> (<a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;attr) noexcept</td></tr>
<tr class="memdesc:a19ff87d74e1ba3b674b6e0a542d7a228"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotates an instantaneous point in time with a "marker", using the attributes specified by <code>attr</code>.  <br /></td></tr>
<tr class="separator:a19ff87d74e1ba3b674b6e0a542d7a228"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82d22c4437222a9bf0c5ae0475aaea7a" id="r_a82d22c4437222a9bf0c5ae0475aaea7a"><td class="memTemplParams" colspan="2">template&lt;typename D  = domain::global, typename... Args&gt; </td></tr>
<tr class="memitem:a82d22c4437222a9bf0c5ae0475aaea7a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#a82d22c4437222a9bf0c5ae0475aaea7a">nvtx3::mark_in</a> (Args const &amp;... args) noexcept</td></tr>
<tr class="memdesc:a82d22c4437222a9bf0c5ae0475aaea7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotates an instantaneous point in time with a "marker", using the arguments to construct an <code><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html" title="Describes the attributes of a NVTX event.">event_attributes</a></code>.  <br /></td></tr>
<tr class="separator:a82d22c4437222a9bf0c5ae0475aaea7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b21b20125928a45a37c12bf1992651" id="r_aa9b21b20125928a45a37c12bf1992651"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#aa9b21b20125928a45a37c12bf1992651">nvtx3::mark</a> (<a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;attr) noexcept</td></tr>
<tr class="memdesc:aa9b21b20125928a45a37c12bf1992651"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotates an instantaneous point in time with a "marker", using the attributes specified by <code>attr</code>, in the global domain.  <br /></td></tr>
<tr class="separator:aa9b21b20125928a45a37c12bf1992651"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d9b055ef46f4b1b29680e01f91ddaa" id="r_ab3d9b055ef46f4b1b29680e01f91ddaa"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:ab3d9b055ef46f4b1b29680e01f91ddaa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="nvtx3_8hpp.html#ab3d9b055ef46f4b1b29680e01f91ddaa">nvtx3::mark</a> (Args const &amp;... args) noexcept</td></tr>
<tr class="memdesc:ab3d9b055ef46f4b1b29680e01f91ddaa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Annotates an instantaneous point in time with a "marker", using the arguments to construct an <code><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html" title="Describes the attributes of a NVTX event.">event_attributes</a></code>, in the global domain.  <br /></td></tr>
<tr class="separator:ab3d9b055ef46f4b1b29680e01f91ddaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Provides C++ constructs making the NVTX library safer and easier to use with zero overhead. </p>

<p class="definition">Definition in file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a id="aeed0a618f017e128a5d8654754f792db" name="aeed0a618f017e128a5d8654754f792db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeed0a618f017e128a5d8654754f792db">&#9670;&#160;</a></span>__has_cpp_attribute</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define __has_cpp_attribute</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00639">639</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a9d072179a819d4d854194a08d3b0f0e6" name="a9d072179a819d4d854194a08d3b0f0e6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d072179a819d4d854194a08d3b0f0e6">&#9670;&#160;</a></span>NVTX3_CONCAT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CONCAT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">A, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">B&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;A##B</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00608">608</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a5658e1ecd630e1d1645da91eb626f78d" name="a5658e1ecd630e1d1645da91eb626f78d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5658e1ecd630e1d1645da91eb626f78d">&#9670;&#160;</a></span>NVTX3_CONSTEXPR_IF_CPP14</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CONSTEXPR_IF_CPP14</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00634">634</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a966f53fda906a701480667f518f2aec4" name="a966f53fda906a701480667f518f2aec4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a966f53fda906a701480667f518f2aec4">&#9670;&#160;</a></span>NVTX3_CPP_DEFINITIONS_V1_0</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CPP_DEFINITIONS_V1_0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00665">665</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="ac2d95bad5f74d08ca6660da2a92a4463" name="ac2d95bad5f74d08ca6660da2a92a4463"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2d95bad5f74d08ca6660da2a92a4463">&#9670;&#160;</a></span>NVTX3_CPP_INLINED_VERSION_MAJOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CPP_INLINED_VERSION_MAJOR&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Semantic major version number for NVTX C++ wrappers of unversioned symbols. </p>
<p>Breaking changes may occur between major versions, and different major versions cannot provide unversioned symbols in the same translation unit (.cpp file).</p>
<p>Note: If NVTX3_CPP_REQUIRE_EXPLICIT_VERSION is defined, this macro is not defined.</p>
<p>Not to be confused with the version number of the NVTX core library. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00076">76</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="abb380e5bd6d9e68f116ad5fd2758f861" name="abb380e5bd6d9e68f116ad5fd2758f861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abb380e5bd6d9e68f116ad5fd2758f861">&#9670;&#160;</a></span>NVTX3_CPP_INLINED_VERSION_MINOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CPP_INLINED_VERSION_MINOR&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Semantic minor version number for NVTX C++ wrappers of unversioned symbols. </p>
<p>No breaking changes occur between minor versions &ndash; minor version changes within a major version are purely additive.</p>
<p>Note: If NVTX3_CPP_REQUIRE_EXPLICIT_VERSION is defined, this macro is not defined.</p>
<p>Not to be confused with the version number of the NVTX core library. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00088">88</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a7656fbfb8b9f1c9338ee9b024d534fa0" name="a7656fbfb8b9f1c9338ee9b024d534fa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7656fbfb8b9f1c9338ee9b024d534fa0">&#9670;&#160;</a></span>NVTX3_CPP_VERSION_MAJOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CPP_VERSION_MAJOR&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00032">32</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a39293d970f89e6d118704a409b424061" name="a39293d970f89e6d118704a409b424061"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39293d970f89e6d118704a409b424061">&#9670;&#160;</a></span>NVTX3_CPP_VERSION_MINOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_CPP_VERSION_MINOR&#160;&#160;&#160;0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00033">33</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a2b33923c0aaddafd0cf373d17a49f37e" name="a2b33923c0aaddafd0cf373d17a49f37e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b33923c0aaddafd0cf373d17a49f37e">&#9670;&#160;</a></span>NVTX3_FUNC_RANGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_FUNC_RANGE&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a9f0dbc21588c8d0f6ee728fdf5289490">NVTX3_V1_FUNC_RANGE</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02879">2879</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a1681dde1cc9b1147f7d5ec4fe4991181" name="a1681dde1cc9b1147f7d5ec4fe4991181"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1681dde1cc9b1147f7d5ec4fe4991181">&#9670;&#160;</a></span>NVTX3_FUNC_RANGE_IF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_FUNC_RANGE_IF&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a7f4e78b0ede77382c2c09fa007c5963e">NVTX3_V1_FUNC_RANGE_IF</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02880">2880</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="adaca3764edd58fa16fde7c737484515d" name="adaca3764edd58fa16fde7c737484515d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaca3764edd58fa16fde7c737484515d">&#9670;&#160;</a></span>NVTX3_FUNC_RANGE_IF_IN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_FUNC_RANGE_IF_IN&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95">NVTX3_V1_FUNC_RANGE_IF_IN</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02882">2882</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a33fb3ef40c0184ef994a401a0f925002" name="a33fb3ef40c0184ef994a401a0f925002"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33fb3ef40c0184ef994a401a0f925002">&#9670;&#160;</a></span>NVTX3_FUNC_RANGE_IN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_FUNC_RANGE_IN&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af">NVTX3_V1_FUNC_RANGE_IN</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02881">2881</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="afdad32bf119e1fa9c0ec05abc9cf671d" name="afdad32bf119e1fa9c0ec05abc9cf671d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afdad32bf119e1fa9c0ec05abc9cf671d">&#9670;&#160;</a></span>NVTX3_INLINE_IF_REQUESTED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_INLINE_IF_REQUESTED&#160;&#160;&#160;inline</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00616">616</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a2581568dc38af4a4628fee30376c3238" name="a2581568dc38af4a4628fee30376c3238"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2581568dc38af4a4628fee30376c3238">&#9670;&#160;</a></span>NVTX3_INLINE_THIS_VERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_INLINE_THIS_VERSION</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00059">59</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a95b659b5b26a058c15af4fbaab2da636" name="a95b659b5b26a058c15af4fbaab2da636"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a95b659b5b26a058c15af4fbaab2da636">&#9670;&#160;</a></span>NVTX3_MAYBE_UNUSED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_MAYBE_UNUSED</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00644">644</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a567378abaa41fe2479ce0d240dd61689" name="a567378abaa41fe2479ce0d240dd61689"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a567378abaa41fe2479ce0d240dd61689">&#9670;&#160;</a></span>NVTX3_NAMESPACE_FOR</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_NAMESPACE_FOR</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">VERSION</td><td>)</td>
          <td>&#160;&#160;&#160;NVTX3_CONCAT(v, VERSION)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00609">609</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="ae6571af9e4e4256a94557cabbd8224cb" name="ae6571af9e4e4256a94557cabbd8224cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6571af9e4e4256a94557cabbd8224cb">&#9670;&#160;</a></span>NVTX3_NO_DISCARD</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_NO_DISCARD</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00649">649</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a8076bcd673627fb1c0dd3d1952a65d96" name="a8076bcd673627fb1c0dd3d1952a65d96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8076bcd673627fb1c0dd3d1952a65d96">&#9670;&#160;</a></span>NVTX3_STATIC_ASSERT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_STATIC_ASSERT</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">condition, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">message&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;static_assert(condition, message)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00658">658</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a51ff8b826c9a3fe3337eecd12e5ab861" name="a51ff8b826c9a3fe3337eecd12e5ab861"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51ff8b826c9a3fe3337eecd12e5ab861">&#9670;&#160;</a></span>NVTX3_STATIC_ASSERT_DEFINED_HERE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_STATIC_ASSERT_DEFINED_HERE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00659">659</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a2c1a4996e4eb9624f7195770f586fe3e" name="a2c1a4996e4eb9624f7195770f586fe3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c1a4996e4eb9624f7195770f586fe3e">&#9670;&#160;</a></span>NVTX3_USE_CHECKED_OVERLOADS_FOR_GET</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_USE_CHECKED_OVERLOADS_FOR_GET&#160;&#160;&#160;1</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00601">601</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a7c7f7877d7493c59faf7da8b2660dbce" name="a7c7f7877d7493c59faf7da8b2660dbce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c7f7877d7493c59faf7da8b2660dbce">&#9670;&#160;</a></span>NVTX3_USE_CHECKED_OVERLOADS_FOR_GET_DEFINED_HERE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_USE_CHECKED_OVERLOADS_FOR_GET_DEFINED_HERE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00603">603</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a9f0dbc21588c8d0f6ee728fdf5289490" name="a9f0dbc21588c8d0f6ee728fdf5289490"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f0dbc21588c8d0f6ee728fdf5289490">&#9670;&#160;</a></span>NVTX3_V1_FUNC_RANGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_V1_FUNC_RANGE</td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af">NVTX3_V1_FUNC_RANGE_IN</a>(<a class="el" href="structnvtx3_1_1v1_1_1domain_1_1global.html">::nvtx3::v1::domain::global</a>)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convenience macro for generating a range in the global domain from the lifetime of a function. </p>
<p>This macro is useful for generating an NVTX range in the global domain from the entry point of a function to its exit. It is intended to be the first line of the function.</p>
<p>Constructs a static <code>registered_string_in</code> using the name of the immediately enclosing function returned by <code>__func__</code> and constructs a <code>nvtx3::scoped_range</code> using the registered function name as the range's message.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> foo(...) {</div>
<div class="line">   NVTX3_FUNC_RANGE(); <span class="comment">// Range begins on entry to foo()</span></div>
<div class="line">   <span class="comment">// do stuff</span></div>
<div class="line">   ...</div>
<div class="line">} <span class="comment">// Range ends on return from foo()</span></div>
</div><!-- fragment --> 
<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02860">2860</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a7f4e78b0ede77382c2c09fa007c5963e" name="a7f4e78b0ede77382c2c09fa007c5963e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f4e78b0ede77382c2c09fa007c5963e">&#9670;&#160;</a></span>NVTX3_V1_FUNC_RANGE_IF</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_V1_FUNC_RANGE_IF</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">C</td><td>)</td>
          <td>&#160;&#160;&#160;<a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95">NVTX3_V1_FUNC_RANGE_IF_IN</a>(<a class="el" href="structnvtx3_1_1v1_1_1domain_1_1global.html">::nvtx3::v1::domain::global</a>, C)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convenience macro for generating a range in the global domain from the lifetime of a function if the given boolean expression evaluates to true. </p>
<p>Similar to <code><a class="el" href="nvtx3_8hpp.html#a9f0dbc21588c8d0f6ee728fdf5289490" title="Convenience macro for generating a range in the global domain from the lifetime of a function.">NVTX3_V1_FUNC_RANGE()</a></code>, the only difference being that <code><a class="el" href="nvtx3_8hpp.html#a7f4e78b0ede77382c2c09fa007c5963e" title="Convenience macro for generating a range in the global domain from the lifetime of a function if the ...">NVTX3_V1_FUNC_RANGE_IF(C)</a></code> only generates a range if the given boolean expression evaluates to true.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">C</td><td>Boolean expression used to determine if a range should be generated. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02873">2873</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="af6fecf49b25b2364e548f9786136fb95" name="af6fecf49b25b2364e548f9786136fb95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6fecf49b25b2364e548f9786136fb95">&#9670;&#160;</a></span>NVTX3_V1_FUNC_RANGE_IF_IN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_V1_FUNC_RANGE_IF_IN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">D, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">C&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  ::nvtx3::v1::detail::optional_scoped_range_in&lt;D&gt; optional_nvtx3_range__;           \</div>
<div class="line">  if (C) {                                                                           \</div>
<div class="line">    static ::nvtx3::v1::registered_string_in&lt;D&gt; <span class="keyword">const</span> nvtx3_func_name__{__func__};   \</div>
<div class="line">    static ::nvtx3::v1::event_attributes <span class="keyword">const</span> nvtx3_func_attr__{nvtx3_func_name__}; \</div>
<div class="line">    optional_nvtx3_range__.begin(nvtx3_func_attr__);                                 \</div>
<div class="line">  } (void)0</div>
</div><!-- fragment -->
<p>Convenience macro for generating a range in the specified <code>domain</code> from the lifetime of a function if the given boolean expression evaluates to true. </p>
<p>Similar to <code><a class="el" href="nvtx3_8hpp.html#a58b4c0fa6be7f4754f8e73bcbf6fd1af" title="Convenience macro for generating a range in the specified domain from the lifetime of a function.">NVTX3_V1_FUNC_RANGE_IN(D)</a></code>, the only difference being that <code><a class="el" href="nvtx3_8hpp.html#af6fecf49b25b2364e548f9786136fb95" title="Convenience macro for generating a range in the specified domain from the lifetime of a function if t...">NVTX3_V1_FUNC_RANGE_IF_IN(D, C)</a></code> only generates a range if the given boolean expression evaluates to true.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the <code>registered_string_in</code> belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used.</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">C</td><td>Boolean expression used to determine if a range should be generated. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02826">2826</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a58b4c0fa6be7f4754f8e73bcbf6fd1af" name="a58b4c0fa6be7f4754f8e73bcbf6fd1af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58b4c0fa6be7f4754f8e73bcbf6fd1af">&#9670;&#160;</a></span>NVTX3_V1_FUNC_RANGE_IN</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_V1_FUNC_RANGE_IN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">D</td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">  static ::nvtx3::v1::registered_string_in&lt;D&gt; <span class="keyword">const</span> nvtx3_func_name__{__func__};   \</div>
<div class="line">  static ::nvtx3::v1::event_attributes <span class="keyword">const</span> nvtx3_func_attr__{nvtx3_func_name__}; \</div>
<div class="line">  <a class="code hl_class" href="classnvtx3_1_1v1_1_1scoped__range__in.html">::nvtx3::v1::scoped_range_in&lt;D&gt;</a> <span class="keyword">const</span> nvtx3_range__{nvtx3_func_attr__}</div>
<div class="ttc" id="aclassnvtx3_1_1v1_1_1scoped__range__in_html"><div class="ttname"><a href="classnvtx3_1_1v1_1_1scoped__range__in.html">nvtx3::v1::scoped_range_in</a></div><div class="ttdoc">A RAII object for creating a NVTX range local to a thread within a domain.</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l02101">nvtx3.hpp:2101</a></div></div>
</div><!-- fragment -->
<p>Convenience macro for generating a range in the specified <code>domain</code> from the lifetime of a function. </p>
<p>This macro is useful for generating an NVTX range in <code>domain</code> from the entry point of a function to its exit. It is intended to be the first line of the function.</p>
<p>Constructs a static <code>registered_string_in</code> using the name of the immediately enclosing function returned by <code>__func__</code> and constructs a <code>nvtx3::scoped_range</code> using the registered function name as the range's message.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">struct </span>my_domain{<span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">char</span> <span class="keyword">const</span>* name{<span class="stringliteral">&quot;my_domain&quot;</span>};};</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">void</span> foo(...) {</div>
<div class="line">   NVTX3_FUNC_RANGE_IN(my_domain); <span class="comment">// Range begins on entry to foo()</span></div>
<div class="line">   <span class="comment">// do stuff</span></div>
<div class="line">   ...</div>
<div class="line">} <span class="comment">// Range ends on return from foo()</span></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the <code>registered_string_in</code> belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02805">2805</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="ac51765404340471148a3c65e1e330af5" name="ac51765404340471148a3c65e1e330af5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac51765404340471148a3c65e1e330af5">&#9670;&#160;</a></span>NVTX3_VERSION_NAMESPACE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NVTX3_VERSION_NAMESPACE&#160;&#160;&#160;NVTX3_NAMESPACE_FOR(NVTX3_CPP_VERSION_MAJOR)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00610">610</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="aa1ceb1a4e9fe17b31069aaf6dbaf0071" name="aa1ceb1a4e9fe17b31069aaf6dbaf0071"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1ceb1a4e9fe17b31069aaf6dbaf0071">&#9670;&#160;</a></span>is_uint32</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">using nvtx3::v1::detail::is_uint32 = typedef std::is_same&lt;typename std::decay&lt;T&gt;::type, uint32_t&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00709">709</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a5ffa040266b85b6fb131dcb9ade33a0a" name="a5ffa040266b85b6fb131dcb9ade33a0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5ffa040266b85b6fb131dcb9ade33a0a">&#9670;&#160;</a></span>named_category</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="nvtx3_8hpp.html#a5ffa040266b85b6fb131dcb9ade33a0a">nvtx3::v1::named_category</a> = typedef named_category_in&lt;domain::global&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for a <code>named_category_in</code> in the global NVTX domain. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l01400">1400</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a952cb27f352570421161c01763effe63" name="a952cb27f352570421161c01763effe63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a952cb27f352570421161c01763effe63">&#9670;&#160;</a></span>registered_string</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="nvtx3_8hpp.html#a952cb27f352570421161c01763effe63">nvtx3::v1::registered_string</a> = typedef registered_string_in&lt;domain::global&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for a <code>registered_string_in</code> in the global NVTX domain. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l01625">1625</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a8e124f3d438e512b586415f1ac2b9677" name="a8e124f3d438e512b586415f1ac2b9677"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e124f3d438e512b586415f1ac2b9677">&#9670;&#160;</a></span>scoped_range</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="nvtx3_8hpp.html#a8e124f3d438e512b586415f1ac2b9677">nvtx3::v1::scoped_range</a> = typedef scoped_range_in&lt;domain::global&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for a <code>scoped_range_in</code> in the global NVTX domain. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02187">2187</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a14d623348b01d05981c7ea644fd7976c" name="a14d623348b01d05981c7ea644fd7976c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14d623348b01d05981c7ea644fd7976c">&#9670;&#160;</a></span>unique_range</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using <a class="el" href="nvtx3_8hpp.html#a14d623348b01d05981c7ea644fd7976c">nvtx3::v1::unique_range</a> = typedef unique_range_in&lt;domain::global&gt;</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alias for a <code>unique_range_in</code> in the global NVTX domain. </p>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02637">2637</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="a2035d9aeb0dd80cb41c64352783171b9" name="a2035d9aeb0dd80cb41c64352783171b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2035d9aeb0dd80cb41c64352783171b9">&#9670;&#160;</a></span>domain::get&lt; domain::global &gt;()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">domain const  &amp; <a class="el" href="classnvtx3_1_1v1_1_1domain.html#a0d83a594238449a3da85e337409fc3db">nvtx3::v1::domain::get</a>&lt; domain::global &gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns reference to the <code>domain</code> object that represents the global NVTX domain. </p>
<p>This specialization for <code>domain::global</code> returns a default constructed, <code>domain</code> object for use when the "global" domain is desired.</p>
<p>All NVTX events in the global domain across all libraries and applications will be grouped together.</p>
<dl class="section return"><dt>Returns</dt><dd>Reference to the <code>domain</code> corresponding to the global NVTX domain. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l00982">982</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="aec1adbeb9e44752027d2ede89f1f0dba" name="aec1adbeb9e44752027d2ede89f1f0dba"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec1adbeb9e44752027d2ede89f1f0dba">&#9670;&#160;</a></span>end_range()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::end_range </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually end the range associated with the handle <code>r</code> in the global domain. </p>
<p>Explicitly ends the NVTX range indicated by the handle <code>r</code> returned from a prior call to <code>start_range</code>. The range may end on a different thread from where it began.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>Handle to a range started by a prior call to <code>start_range</code>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>The domain type specified as template parameter to this function must be the same that was specified on the associated <code>start_range</code> call. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02509">2509</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a0ef24a4252e5cc6267766410a03dcebb" name="a0ef24a4252e5cc6267766410a03dcebb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ef24a4252e5cc6267766410a03dcebb">&#9670;&#160;</a></span>end_range_in()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename D  = domain::global&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::end_range_in </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>r</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually end the range associated with the handle <code>r</code> in domain <code>D</code>. </p>
<p>Explicitly ends the NVTX range indicated by the handle <code>r</code> returned from a prior call to <code>start_range_in&lt;D&gt;</code>. The range may end on a different thread from where it began.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the range belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">r</td><td>Handle to a range started by a prior call to <code>start_range_in</code>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>The domain type specified as template parameter to this function must be the same that was specified on the associated <code>start_range_in</code> call. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02487">2487</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="ab3d9b055ef46f4b1b29680e01f91ddaa" name="ab3d9b055ef46f4b1b29680e01f91ddaa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3d9b055ef46f4b1b29680e01f91ddaa">&#9670;&#160;</a></span>mark() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::mark </td>
          <td>(</td>
          <td class="paramtype">Args const &amp;...&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Annotates an instantaneous point in time with a "marker", using the arguments to construct an <code>event_attributes</code>, in the global domain. </p>
<p>Unlike a "range" which has a beginning and an end, a marker is a single event in an application, such as detecting a problem:</p>
<div class="fragment"><div class="line"><span class="keywordtype">bool</span> success = do_operation(...);</div>
<div class="line"><span class="keywordflow">if</span> (!success) {</div>
<div class="line">   nvtx3::mark(<span class="stringliteral">&quot;operation failed!&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{255,0,0});</div>
<div class="line">}</div>
<div class="ttc" id="astructnvtx3_1_1v1_1_1rgb_html"><div class="ttname"><a href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a></div><div class="ttdoc">Indicates the values of the red, green, and blue color channels for an RGB color to use as an event a...</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l00993">nvtx3.hpp:993</a></div></div>
</div><!-- fragment --><p>Note that nvtx3::mark is a function, not a class like scoped_range.</p>
<p>Forwards the arguments <code>args...</code> to construct an <code>event_attributes</code> object. The attributes are then associated with the marker. For more detail, see the <code>event_attributes</code> documentation.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Variadic parameter pack of arguments to construct an <code>event_attributes</code> associated with this range. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02763">2763</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="aa9b21b20125928a45a37c12bf1992651" name="aa9b21b20125928a45a37c12bf1992651"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9b21b20125928a45a37c12bf1992651">&#9670;&#160;</a></span>mark() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::mark </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Annotates an instantaneous point in time with a "marker", using the attributes specified by <code>attr</code>, in the global domain. </p>
<p>Unlike a "range" which has a beginning and an end, a marker is a single event in an application, such as detecting a problem:</p>
<div class="fragment"><div class="line"><span class="keywordtype">bool</span> success = do_operation(...);</div>
<div class="line"><span class="keywordflow">if</span> (!success) {</div>
<div class="line">   <a class="code hl_class" href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::event_attributes</a> attr{<span class="stringliteral">&quot;operation failed!&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{255,0,0}};</div>
<div class="line">   <a class="code hl_function" href="nvtx3_8hpp.html#aa9b21b20125928a45a37c12bf1992651">nvtx3::mark</a>(attr);</div>
<div class="line">}</div>
<div class="ttc" id="aclassnvtx3_1_1v1_1_1event__attributes_html"><div class="ttname"><a href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::event_attributes</a></div><div class="ttdoc">Describes the attributes of a NVTX event.</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l01954">nvtx3.hpp:1954</a></div></div>
<div class="ttc" id="anvtx3_8hpp_html_aa9b21b20125928a45a37c12bf1992651"><div class="ttname"><a href="nvtx3_8hpp.html#aa9b21b20125928a45a37c12bf1992651">nvtx3::v1::mark</a></div><div class="ttdeci">void mark(event_attributes const &amp;attr) noexcept</div><div class="ttdoc">Annotates an instantaneous point in time with a &quot;marker&quot;, using the attributes specified by attr,...</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l02729">nvtx3.hpp:2729</a></div></div>
</div><!-- fragment --><p>Note that nvtx3::mark is a function, not a class like scoped_range.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">attr</td><td><code>event_attributes</code> that describes the desired attributes of the mark. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02729">2729</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a82d22c4437222a9bf0c5ae0475aaea7a" name="a82d22c4437222a9bf0c5ae0475aaea7a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82d22c4437222a9bf0c5ae0475aaea7a">&#9670;&#160;</a></span>mark_in() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename D  = domain::global, typename... Args&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::mark_in </td>
          <td>(</td>
          <td class="paramtype">Args const &amp;...&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Annotates an instantaneous point in time with a "marker", using the arguments to construct an <code>event_attributes</code>. </p>
<p>Unlike a "range" which has a beginning and an end, a marker is a single event in an application, such as detecting a problem:</p>
<div class="fragment"><div class="line"><span class="keywordtype">bool</span> success = do_operation(...);</div>
<div class="line"><span class="keywordflow">if</span> (!success) {</div>
<div class="line">   nvtx3::mark_in&lt;my_domain&gt;(<span class="stringliteral">&quot;operation failed!&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{255,0,0});</div>
<div class="line">}</div>
</div><!-- fragment --><p>Note that nvtx3::mark_in&lt;D&gt; is a function, not a class like scoped_range_in&lt;D&gt;.</p>
<p>Forwards the arguments <code>args...</code> to construct an <code>event_attributes</code> object. The attributes are then associated with the marker. For more detail, see the <code>event_attributes</code> documentation.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the <code>unique_range_in</code> belongs. Else <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Variadic parameter pack of arguments to construct an <code>event_attributes</code> associated with this range. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02700">2700</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a19ff87d74e1ba3b674b6e0a542d7a228" name="a19ff87d74e1ba3b674b6e0a542d7a228"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a19ff87d74e1ba3b674b6e0a542d7a228">&#9670;&#160;</a></span>mark_in() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename D  = domain::global&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void nvtx3::v1::mark_in </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Annotates an instantaneous point in time with a "marker", using the attributes specified by <code>attr</code>. </p>
<p>Unlike a "range" which has a beginning and an end, a marker is a single event in an application, such as detecting a problem:</p>
<div class="fragment"><div class="line"><span class="keywordtype">bool</span> success = do_operation(...);</div>
<div class="line"><span class="keywordflow">if</span> (!success) {</div>
<div class="line">   <a class="code hl_class" href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::event_attributes</a> attr{<span class="stringliteral">&quot;operation failed!&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{255,0,0}};</div>
<div class="line">   nvtx3::mark_in&lt;my_domain&gt;(attr);</div>
<div class="line">}</div>
</div><!-- fragment --><p>Note that nvtx3::mark_in&lt;D&gt; is a function, not a class like scoped_range_in&lt;D&gt;.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the <code>unique_range_in</code> belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">attr</td><td><code>event_attributes</code> that describes the desired attributes of the mark. </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02663">2663</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="aaaae235fe6980a2ac95eb4f35d6e9ad1" name="aaaae235fe6980a2ac95eb4f35d6e9ad1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaae235fe6980a2ac95eb4f35d6e9ad1">&#9670;&#160;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool nvtx3::v1::operator!= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compares two range_handles for inequality. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The first range_handle to compare </td></tr>
    <tr><td class="paramname">rhs</td><td>The second range_handle to compare </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02314">2314</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="aa2016d0df543887a838402751356433d" name="aa2016d0df543887a838402751356433d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa2016d0df543887a838402751356433d">&#9670;&#160;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">constexpr bool nvtx3::v1::operator== </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structnvtx3_1_1v1_1_1range__handle.html">range_handle</a>&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">constexpr</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Compares two range_handles for equality. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>The first range_handle to compare </td></tr>
    <tr><td class="paramname">rhs</td><td>The second range_handle to compare </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02303">2303</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a7484c890617a91bbbb998b793b59584e" name="a7484c890617a91bbbb998b793b59584e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7484c890617a91bbbb998b793b59584e">&#9670;&#160;</a></span>start_range() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename... Args&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">range_handle nvtx3::v1::start_range </td>
          <td>(</td>
          <td class="paramtype">Args const &amp;...&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually begin an NVTX range in the global domain. </p>
<p>Explicitly begins an NVTX range and returns a unique handle. To end the range, pass the handle to <code>end_range_in&lt;D&gt;()</code>.</p>
<p><code>nvtx3::start_range(...)</code> is equivalent to <code>nvtx3::start_range_in&lt;&gt;(...)</code> and <code>nvtx3::start_range_in&lt;nvtx3::domain::global&gt;(...)</code>.</p>
<p><code>start_range_in/end_range_in</code> are the most explicit and lowest level APIs provided for creating ranges. Use of <code><a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html" title="A RAII object for creating a NVTX range within a domain that can be created and destroyed on differen...">nvtx3::unique_range_in</a></code> should be preferred unless one is unable to tie the range to the lifetime of an object.</p>
<p>This overload uses <code>args...</code> to construct an <code>event_attributes</code> to associate with the range. For more detail, see <code>event_attributes</code>.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="comment">// Manually begin a range</span></div>
<div class="line"><a class="code hl_struct" href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::range_handle</a> h = nvtx3::start_range(<span class="stringliteral">&quot;msg&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{127,255,0});</div>
<div class="line">...</div>
<div class="line">nvtx3::end_range(h); <span class="comment">// Ends the range</span></div>
<div class="ttc" id="astructnvtx3_1_1v1_1_1range__handle_html"><div class="ttname"><a href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::range_handle</a></div><div class="ttdoc">Handle used for correlating explicit range start and end events.</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l02242">nvtx3.hpp:2242</a></div></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Variadic parameter pack of the arguments for an <code>event_attributes</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Unique handle to be passed to <code>end_range</code> to end the range. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02461">2461</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a944d0beb92c70e5d3842c5dc4fca81ec" name="a944d0beb92c70e5d3842c5dc4fca81ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a944d0beb92c70e5d3842c5dc4fca81ec">&#9670;&#160;</a></span>start_range() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">range_handle nvtx3::v1::start_range </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually begin an NVTX range in the global domain. </p>
<p>Explicitly begins an NVTX range and returns a unique handle. To end the range, pass the handle to <code>end_range()</code>.</p>
<p><code>nvtx3::start_range(...)</code> is equivalent to <code>nvtx3::start_range_in&lt;&gt;(...)</code> and <code>nvtx3::start_range_in&lt;nvtx3::domain::global&gt;(...)</code>.</p>
<p><code>start_range/end_range</code> are the most explicit and lowest level APIs provided for creating ranges. Use of <code>nvtx3::unique_range</code> should be preferred unless one is unable to tie the range to the lifetime of an object.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code hl_class" href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::event_attributes</a> attr{<span class="stringliteral">&quot;msg&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{127,255,0}};</div>
<div class="line"><span class="comment">// Manually begin a range</span></div>
<div class="line"><a class="code hl_struct" href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::range_handle</a> h = <a class="code hl_function" href="nvtx3_8hpp.html#a944d0beb92c70e5d3842c5dc4fca81ec">nvtx3::start_range</a>(attr);</div>
<div class="line">...</div>
<div class="line">nvtx3::end_range(h); <span class="comment">// End the range</span></div>
<div class="ttc" id="anvtx3_8hpp_html_a944d0beb92c70e5d3842c5dc4fca81ec"><div class="ttname"><a href="nvtx3_8hpp.html#a944d0beb92c70e5d3842c5dc4fca81ec">nvtx3::v1::start_range</a></div><div class="ttdeci">range_handle start_range(event_attributes const &amp;attr) noexcept</div><div class="ttdoc">Manually begin an NVTX range in the global domain.</div><div class="ttdef"><b>Definition</b> <a href="nvtx3_8hpp_source.html#l02423">nvtx3.hpp:2423</a></div></div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">attr</td><td><code>event_attributes</code> that describes the desired attributes of the range. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Unique handle to be passed to <code>end_range_in</code> to end the range. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02423">2423</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a277b16a1aadc6e8b40e720847b5fb124" name="a277b16a1aadc6e8b40e720847b5fb124"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a277b16a1aadc6e8b40e720847b5fb124">&#9670;&#160;</a></span>start_range_in() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename D  = domain::global, typename... Args&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">range_handle nvtx3::v1::start_range_in </td>
          <td>(</td>
          <td class="paramtype">Args const &amp;...&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually begin an NVTX range. </p>
<p>Explicitly begins an NVTX range and returns a unique handle. To end the range, pass the handle to <code>end_range_in&lt;D&gt;()</code>.</p>
<p><code>nvtx3::start_range(...)</code> is equivalent to <code>nvtx3::start_range_in&lt;&gt;(...)</code> and <code>nvtx3::start_range_in&lt;nvtx3::domain::global&gt;(...)</code>.</p>
<p><code>start_range_in/end_range_in</code> are the most explicit and lowest level APIs provided for creating ranges. Use of <code><a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html" title="A RAII object for creating a NVTX range within a domain that can be created and destroyed on differen...">nvtx3::unique_range_in</a></code> should be preferred unless one is unable to tie the range to the lifetime of an object.</p>
<p>This overload uses <code>args...</code> to construct an <code>event_attributes</code> to associate with the range. For more detail, see <code>event_attributes</code>.</p>
<p>Example: </p><div class="fragment"><div class="line"><span class="comment">// Manually begin a range</span></div>
<div class="line"><a class="code hl_struct" href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::range_handle</a> h = nvtx3::start_range_in&lt;D&gt;(<span class="stringliteral">&quot;msg&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{127,255,0});</div>
<div class="line">...</div>
<div class="line">nvtx3::end_range_in&lt;D&gt;(h); <span class="comment">// Ends the range</span></div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the range belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">args</td><td>Variadic parameter pack of the arguments for an <code>event_attributes</code>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Unique handle to be passed to <code>end_range</code> to end the range. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02387">2387</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
<a id="a58d393b13ffc2fe5f44b0171be0bec23" name="a58d393b13ffc2fe5f44b0171be0bec23"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58d393b13ffc2fe5f44b0171be0bec23">&#9670;&#160;</a></span>start_range_in() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename D  = domain::global&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">range_handle nvtx3::v1::start_range_in </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classnvtx3_1_1v1_1_1event__attributes.html">event_attributes</a> const &amp;&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Manually begin an NVTX range. </p>
<p>Explicitly begins an NVTX range and returns a unique handle. To end the range, pass the handle to <code>end_range_in&lt;D&gt;()</code>.</p>
<p><code>nvtx3::start_range(...)</code> is equivalent to <code>nvtx3::start_range_in&lt;&gt;(...)</code> and <code>nvtx3::start_range_in&lt;nvtx3::domain::global&gt;(...)</code>.</p>
<p><code>start_range_in/end_range_in</code> are the most explicit and lowest level APIs provided for creating ranges. Use of <code><a class="el" href="classnvtx3_1_1v1_1_1unique__range__in.html" title="A RAII object for creating a NVTX range within a domain that can be created and destroyed on differen...">nvtx3::unique_range_in</a></code> should be preferred unless one is unable to tie the range to the lifetime of an object.</p>
<p>Example: </p><div class="fragment"><div class="line"><a class="code hl_class" href="classnvtx3_1_1v1_1_1event__attributes.html">nvtx3::event_attributes</a> attr{<span class="stringliteral">&quot;msg&quot;</span>, <a class="code hl_struct" href="structnvtx3_1_1v1_1_1rgb.html">nvtx3::rgb</a>{127,255,0}};</div>
<div class="line"><span class="comment">// Manually begin a range</span></div>
<div class="line"><a class="code hl_struct" href="structnvtx3_1_1v1_1_1range__handle.html">nvtx3::range_handle</a> h = nvtx3::start_range_in&lt;my_domain&gt;(attr);</div>
<div class="line">...</div>
<div class="line">nvtx3::end_range_in&lt;my_domain&gt;(h); <span class="comment">// End the range</span></div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">D</td><td>Type containing <code>name</code> member used to identify the <code>domain</code> to which the range belongs. Else, <code>domain::global</code> to indicate that the global NVTX domain should be used. </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">attr</td><td><code>event_attributes</code> that describes the desired attributes of the range. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Unique handle to be passed to <code>end_range_in</code> to end the range. </dd></dl>

<p class="definition">Definition at line <a class="el" href="nvtx3_8hpp_source.html#l02346">2346</a> of file <a class="el" href="nvtx3_8hpp_source.html">nvtx3.hpp</a>.</p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>
